const app = getApp();

Page({
  data: {
    orders: [],
    allOrders: [], // 新增字段存储全部订单
    currentStatus: -1,
    loading: false,
    error: null,
    initialLoad: true // 初次加载标志
  },
  onLoad() {
    this.loadOrders(-1);
    console.log('页面加载完成');
    console.log('订单数据:', this.data);
  },
  // 修改后的加载方法
  loadOrders(status) {
      if (this.data.initialLoad) {
          this.setData({ loading: true, error: null });
          wx.request({
              url: `${app.globalData.baseUrl}/rental/order/1/1000`, // 获取全部数据
              method: 'POST',
              header: {
                  'Content-Type': 'application/json',
                  'token': wx.getStorageSync('token')
              },
              data: { order: { status: this.data.currentStatus } },
              success: (res) => {
                  if (res.data.code === 200) {
                      console.log('接口返回数据:', res.data);  // 新增日志
                      // 修改订单状态判断逻辑
                      // 修改数据映射逻辑
                      const allOrders = res.data.data.records.map(order => {
                          return {
                              ...order,
                              orderStatus: Number(order.orderStatus),
                              statusClass: this.getStatusClass(order.orderStatus),
                              statusText: this.getStatusText(order.orderStatus),
                              showCancelButton: order.orderStatus === 0 || order.orderStatus === 1,  // 修改判断条件
                              showPayButton: order.orderStatus === 0,
                              showContactButton: Number(order.orderStatus) === 2,
                              showExtendButton: Number(order.orderStatus) === 2,
                              showRentAgainButton: Number(order.orderStatus) === 3
                          };
                      });
                      this.setData({
                          allOrders,
                          initialLoad: false
                      });
                      console.log('完整订单数据:', allOrders);  // 新增日志
                      this.filterOrders(-1);  // 强制初始显示全部
                  } else {
                      this.setData({ error: res.data.message || '加载订单失败' });
                  }
                  this.setData({ loading: false });
              },
              fail: (err) => {
                  this.setData({ loading: false, error: '网络错误，请稍后重试' });
                  console.error('加载订单失败:', err);
                  wx.showToast({
                      title: '加载订单失败，请稍后重试',
                      icon: 'none'
                  });
              }
          });
      } else {
          this.filterOrders(status);
      }
  },
  // 新增前端过滤方法
  filterOrders(status) {
      console.log('当前过滤状态:', status);  // 新增日志
      const filtered = this.data.allOrders.filter(order => 
          status === -1 || order.orderStatus === status
      );
      console.log('过滤结果:', filtered);  // 新增日志
      this.setData({
          orders: filtered,
          currentStatus: status
      });
  },
  getStatusClass(orderStatus) {  // 参数名改为orderStatus
    switch (orderStatus) {
      case 1: return 'bg-green-100 text-green-600';
      case 2: return 'bg-blue-100 text-blue-600';
      case 3: return 'bg-gray-100 text-gray-600';
      case 4: return 'bg-red-100 text-red-600';
      default: return 'bg-gray-100 text-gray-600';
    }
  },
  getStatusText(orderStatus) {  // 参数名改为orderStatus
    switch (orderStatus) {
      case 0: return '待支付';  // 新增状态0描述
      case 1: return '待取车';
      case 2: return '使用中';
      case 3: return '已完成'; 
      case 4: return '已取消';
      default: return '未知状态';
    }
  },
  handleStatusChange(e) {
    const status = e.currentTarget.dataset.status;
    this.loadOrders(status);
  },
  // 修改点击事件处理
  onTabClick(e) {
      const status = parseInt(e.currentTarget.dataset.status);  // 转换为数字
      this.setData({ currentStatus: status });
      this.filterOrders(status);
  },
  // 在Page对象内新增方法
  cancelOrder(e) {
    console.log('事件对象:', e);  // 新增完整事件日志
    const orderId = e.currentTarget.dataset.orderId;
    console.log('取消订单ID:', orderId);  // 新增日志
    wx.showModal({
        title: '确认取消',
        content: '确定要取消该订单吗？',
        success: (res) => {
            if (res.confirm) {
                wx.request({
                    url: `${app.globalData.baseUrl}/rental/order/cancel/${orderId}`,
                    method: 'PUT',
                    header: {
                        'Content-Type': 'application/json',
                        'token': wx.getStorageSync('token')
                    },
                    success: (res) => {
                        if (res.data.code === 200) {
                            wx.showToast({ title: '取消成功' });
                            // 刷新订单列表
                            this.setData({ initialLoad: true });
                            this.loadOrders(this.data.currentStatus);
                        } else {
                            wx.showToast({ 
                                title: res.data.message || '取消失败',
                                icon: 'none'
                            });
                        }
                    },
                    fail: () => {
                        wx.showToast({ 
                            title: '网络错误',
                            icon: 'none'
                        });
                    }
                });
            }
        }
    });
  },
});

